package com.soft.mainsite.module.data.dao;

import com.soft.mainsite.module.data.dto.UserDataDTO;
import com.soft.mainsite.module.data.entity.UserData;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.BaseMapper;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author: hjm
 * @Date: 2020/11/28 23:28
 * Stay hungry,stay foolish!
 */
@Repository
public interface UserDataMapper extends BaseMapper<UserData> {

    /**
     * 小程序使用，领取资料
     *
     * @param userData 用户数据实例
     * @return 是否领取成功
     */
    int saveUserData(@Param("userData") UserData userData);

    /**
     * 小程序使用，删除领取的资料
     *
     * @param userPhone  用户手机号
     * @param userDataId 资料id
     * @return 是否删除成功
     */
    int deleteByUserPhoneAndDataId(@Param("userPhone") String userPhone, @Param("userDataId") Integer userDataId);

    /**
     * 小程序使用，根据用户手机号查询用户领取的资料列表（按时间分组并按时间降序排列）
     *
     * @param userPhone  用户手机号
     * @param isFavorite 是否收藏
     * @return 用户领取的资料列表（按时间分组并按时间降序排列）
     */
    List<UserDataDTO> userDataList(@Param("userPhone") String userPhone, @Param("isFavorite") Integer isFavorite);

    /**
     * 根据id查询详情
     *
     * @param dtoId id
     * @return 详情
     */
    UserData infoById(Integer dtoId);

    /**
     * 小程序使用，用户根据id 添加收藏
     *
     * @param dtoId id
     * @return 是否添加收藏成功
     */
    int addFavorite(Integer dtoId);

    /**
     * 小程序使用，用户取消收藏资料
     *
     * @param dtoId id
     * @return 取消收藏是否成功
     */
    int cancelFavorite(Integer dtoId);

}
